<?php
//    +----------------------------------------------------------------------
//    | Copyright (c) 2015-2035 http://www.hdphp.cn All rights reserved.
//    | Licensed ( http://www.hdphp.cn/licenses/ )
//    | Author: Jack <sophia2152@qq.com>
//    | 官方网址: http://www.hdphp.cn
//    | 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用。
//    | 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
//    +----------------------------------------------------------------------
declare (strict_types=1);

namespace app\services\system\log;

use app\services\BaseServices;
use app\dao\system\log\SystemLoginLogDao;

/**
 * Class：SystemLoginLogServices
 * 创建人：Jack
 * 创建时间：2023/3/21 7:48 PM
 * @package app\services\system\log
 * @mixin SystemLoginLogDao
 */
class SystemLoginLogServices extends BaseServices
{

    /**
     * SystemLoginLogServices constructor.
     * @param SystemLoginLogDao $dao
     */
    public function __construct(SystemLoginLogDao $dao)
    {
        $this->dao = $dao;
    }

    /**
     * 注释：记录登录日志
     * 创建人：Jack
     * 创建时间：2023/3/23 9:55
     * @param int $uid
     * @param int $status
     * @param string $ip
     * @return bool
     */
    public function insertLoginLog(int $uid, int $status, string $ip)
    {
        $data = [
            'uid' => $uid,
            'status' => $status,
            'ip' => $ip,
            'login_time' => time()
        ];
        if ($this->dao->save($data)) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * 注释：登录日志列表
     * 创建人：Jack
     * 创建时间：2023/3/27 16:38
     * @param array $where
     * @return array
     */
    public function getLoginLogList(array $where)
    {
        [$page, $limit] = $this->getPageValue();
        $list = $this->dao->getList($where, $page, $limit);
        $count = $this->dao->count($where);

        return compact('list', 'count');
    }

    /**
     * 注释：获取指定条件下的条数
     * 创建人：Jack
     * 创建时间：2023/3/23 10:23
     * @param array $where
     * @return int
     */
    public function getCount(array $where)
    {
        return $this->dao->count($where);
    }
}
